/*
 * Created on Jun 1, 2005
 *
 * TODO To change the template for this generated file go to
 * Window - Preferences - Java - Code Style - Code Templates
 */
package org.scohen.juploadr.ui.thumbnail;

import org.eclipse.swt.events.DisposeListener;
import org.eclipse.swt.events.KeyListener;
import org.eclipse.swt.events.MouseListener;
import org.eclipse.swt.events.MouseTrackListener;
import org.eclipse.swt.events.PaintListener;
import org.eclipse.swt.graphics.Image;
import org.scohen.juploadr.app.ImageAttributes;

/**
 * @author steve
 * 
 * TODO To change the template for this generated type comment go to Window -
 * Preferences - Java - Code Style - Code Templates
 */
public interface Thumbnail {
    public static final int BORDER_WIDTH = 5;
    public static int THUMBNAIL_WIDTH = 107;
    public static int THUMBNAIL_HEIGHT = 107;
    public static final int TOTAL_WIDTH = THUMBNAIL_WIDTH + (2 * BORDER_WIDTH) + 2;
    public static final int TOTAL_HEIGHT = THUMBNAIL_HEIGHT + (2 * BORDER_WIDTH) + 2;

    /**
     * @return Returns the image.
     */
    public abstract Image getImage();

    public void addMouseListener(MouseListener listener);

    public void redraw();

    public void dispose();

    public void setEnabled(boolean enabled);

    public void addPaintListener(PaintListener listener);

    public void addDisposeListener(DisposeListener listener);

    public void addMouseTrackListener(MouseTrackListener listener);

    public void addKeyListener(KeyListener listener);

    public boolean isDisposed();

    public ImageAttributes getImageAttributes();

    public abstract void thumbnailChanged();
}